/*
    * Author:   Sander
    * Date:     11-mei-2011
    * Name:     MaterialLibrary
    * Version:  1.0
    *
    * This code is property of Sander blahblahblah copyright blahblah.
*/


package javaraytracer.parsers;

import javaraytracer.Vec3;
import javaraytracer.Materials.Image;

//PENDING:add function/property description
public class MaterialLibrary
{
	public String name		= ""; //newmtl ...
	public Vec3 ambient		= Vec3.EMPTY; //Ka
	public Vec3 diffuse		= Vec3.ONE; //Kd
	public Vec3 specular	= Vec3.EMPTY; //Ks
	public Vec3 filter		= Vec3.ONE; //Tf Transmission Filter (color filter when passing through)
	public int specularN	= 20; //Ns
	public float dissolve	= 1; //d of Tr TODO: make dissolve
	public float refraction	= 1; //Ni
	public int illumination	= 2; //illum
	/*	Illumination models
		0. Color on and Ambient off
		1. Color on and Ambient on
		2. Highlight on
		3. Reflection on and Ray trace on
		4. Transparency: Glass on, Reflection: Ray trace on
		5. Reflection: Fresnel on and Ray trace on
		6. Transparency: Refraction on, Reflection: Fresnel off and Ray trace on
		7. Transparency: Refraction on, Reflection: Fresnel on and Ray trace on
		8. Reflection on and Ray trace off
		9. Transparency: Glass on, Reflection: Ray trace off
		10. Casts shadows onto invisible surfaces
	 */

	public Image ambientMap		= null;
	public Image diffuseMap		= null;
	public Image specularMap	= null;
	public Image specularNMap	= null;
	public Image dMap			= null;
	public Image bumpMap		= null;

	public MaterialLibrary()
	{

	}
}
